# -*- coding: utf-8 -*-
"""
Created on Wed Nov 28 20:37:47 2019

@author: chern.lei
"""

import numpy as np
import pandas as pd
from sklearn.linear_model import Lasso

inputFile = 'data.csv'            # 输入的数据文件
outputFile = 'new_reg_data.csv'   # 输出的数据文件
data = pd.read_csv(inputFile)     # 读取数据
pearson = np.round(data.corr(method='pearson'), 2)   # 保留两位小数
print('相关系数矩阵为：', pearson)

lasso = Lasso(1000)               # 调用Lasso()函数，设置λ的值为1000
lasso.fit(data.iloc[:, 0:14], data['y'])
print('相关系数为：', np.round(lasso.coef_, 5))           # 输出结果，保留五位小数
print('相关系数非零个数为：', np.sum(lasso.coef_ != 0))   # 计算相关系数非零的个数

mask = lasso.coef_ != 0                 # 返回一个相关系数是否为零的布尔数组
new_reg_data = data.iloc[:, mask]       # 返回相关系数非零的数据
new_reg_data.to_csv(outputFile, index=None)         # 存储数据
print('输出数据的维度为：', new_reg_data.shape)      # 查看输出数据的维度
